Deliverable 4 - Video Pitch

CMSC408 - Spring 2025 - Team Open Valve

Authors

Trevor Corcoran

Jon Rutan

Published

March 1, 2025

[Link to repository]

Video pitch

Link to source video in case the iframe player does not work.

Crow’s Foot ER Diagram

erDiagram 
    
    GAME {
        int appID PK
        string title
        string description
        date release_date
        string store_page_link
        int game_tag_id FK
    }

    TAG {
      string name PK
      string tag_page_link
      int game_tag_id FK "multi-valued"
    }

    GENRE {
      string name PK
    }

    GAME_TAG {
      int game_tag_id PK
      int game_id FK
      int tag_name FK
    }

    USER {
      int user_id PK
      string name
    }
   
    LIBRARY {
      int user_id FK
      string appID FK "multi-valued"
    }

    GAME_TAG }o--|{ TAG : has
    GAME ||--|| GAME_TAG : has
    GENRE }o..o{ TAG : related-somehow
    USER ||..|| LIBRARY : owns
    LIBRARY }o..o{ GAME : contains

Problem Domain

Open Valve is a database of steam apps and their associated game data. The focus of the database is on the user-applied tags to steam games.

Need

The goal of our project is to utilize this data to create a curated recommendation system for users based on their game tags and relevant data.

The current recommendation system that Steam boasts is frankly lackluster. Despite being one of the largest game storefronts with millions of users and an untold number of games, the discovery system just does not cut it. We aim to create a database and front-end to address this issue.

Context, Scope, Perspective

We are approaching this as from the perspective of Steam users that want to spend more of our hard-earned money on video games. We do not want to extend our reach beyond what is reasonable for a semester-long project. To this end, we are expecting to only create a basic front-end that is focused on the features, rather than presentability. Additionally, we are first attempting to implement just one recommendation algorithm, and we will see from there what might be necessary to bring this project to fruition.

ProtonDB is a notable example of a similar service. On the linked page, if you change the “Category” to “Personal Library”, there is an option to link your Steam account. Using your profile, the website will process your library. ProtonDB uses this information to tell you what games you own that are compatible with Valve’s Windows compatability layer called Proton (which itself is based off of Wine). We hope to create a similar user experience with our project.

Motivation

As stated, we believe the discoverability of games on the Steam storefront is lacking, and we want to make a difference!

README

Open Valve - Steam Game Recommendation System

Project Overview

This repository contains the deliverables for the Database Design Project. The objective of this project is to create a database and front-end that provides Steam game recommendations based on the user’s current library. Using user-generated tags, the system identifies and suggests similar games. The final report provides an in-depth analysis of the database design, while the accompanying video presentations offer further context regarding the design process and key considerations.

Authors

  • Jon Rutan
  • Trevor Corcoran

Deliverables

  • Deliverable 4: Project Pitch Video and Report
  • Deliverable 5: Design Document
  • Deliverable 7: Complete Software Product

Relevant Folders

  • ./reports - Holds the Quarto source files of the reports
  • ./docs - Holds the rendered html files of the reports

How to Render

You must have Quarto installed. Inside the ./reports directory, run the command quarto render.
Then, open ./docs/index.html to view the index page that links to all of the reports contained in this repository.

Project Description

Problem Domain: This project focuses on enhancing the gaming experience by providing intelligent game recommendations based on a user’s Steam library. By leveraging user-generated tags, the system determines game similarities to suggest new titles of interest.

Justification for a Database: Given the extensive nature of Steam’s game library and the variety of user preferences, a structured database is necessary to efficiently store and analyze game data, user libraries, and recommendation mappings.

Queries and Sample Data

The database is designed to support 20 distinct queries, illustrating its ability to fulfill a variety of user requirements. Sample data has been provided to demonstrate the expected structure and content of the database tables.

Project Timeline

A Gantt Chart has been developed to outline the key tasks and milestones necessary for completing the final deliverable by April 29th.

Reflection

What did you like the most about this project?
Making a video was an interesting departure from the usual faire of writing textual reports. It allowed us to be creative and present our ideas in a much more fluid manner than otherwise possible in a text document.
How are you finding Harmonize to host/facilitate discussions? Is it helpful?
Harmonize is difficult for discussing the class topics. It is not because of Harmonize itself, but rather the excessive reliance on ChatGPT answers. Instead of conducting a dialogue it seems that everyone would rather just meet their post/response quota and be done. Harmonize itself is cleaner and far better structured than Canvas discussions though.
How would you improve Harmonize so that it works better for discussions?
Discourage AI responses. While AI is clearly an invaluable tool and our futures as computer scientists will rely on it; it kills the human element of discussion and dialogue that gives the platform any value in the first place.